package com.atguigu.jxc.service;

import com.atguigu.jxc.entity.Goods;
import com.github.pagehelper.Page;

import java.util.Map;

public interface GoodsService {
    /**
     * //查询当前库存（可根据商品类别、商品编码或名称搜索）
     * @param page
     * @param rows
     * @param codeOrName
     * @param goodsTypeId
     * @return
     */
    Page<Goods> listInventory(Integer page, Integer rows, String codeOrName, Integer goodsTypeId);

    //查询所有商品信息,根据分类、名称查询
    Map<String, Object> list(Integer page, Integer rows, String goodsName, Integer goodsTypeId);

    //商品添加或修改
    void save(Goods goods);

    //商品删除（要判断商品状态,入库、有进货和销售单据的不能删除）
    void delete(Integer goodsId);

    //无库存商品列表展示（可以根据商品名称或编码查询）
    Map<String, Object> getNoInventoryQuantity(Integer page, Integer rows,String nameOrCode);

    //有库存商品列表展示（可以根据商品名称或编码查询）
    Map<String, Object> getHasInventoryQuantity(Integer page, Integer rows, String nameOrCode);

    //添加库存、修改数量或成本价
    void saveStock(Integer goodsId, Integer inventoryQuantity, double purchasingPrice);

    //删除库存（要判断商品状态 入库、有进货和销售单据的不能删除）
    void deleteStock(Integer goodsId);

    //查询所有 当前库存量 小于 库存下限的商品信息
    Map<String, Object> listAlarm();

}
